package com.lanchetech.service;

import com.lanchetech.bean.request.CardConsumptionFundItemReq;
import com.lanchetech.bean.request.CardConsumptionFundReq;
import com.lanchetech.bean.request.TenantPageReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.*;
import com.lanchetech.common.exception.ResultCodeException;
import com.lanchetech.entity.CardConsumptionFund;
import com.lanchetech.entity.CardConsumptionFundItem;
import com.lanchetech.entity.CardConsumptionUser;
import com.lanchetech.entity.User;

import java.util.List;

public interface CardConsumptionFundService {
    int save(CardConsumptionFund cardConsumptionFund) throws ResultCodeException;

    ResultData<BasePageResp<CardConsumptionFundVo>> list(CardConsumptionFundReq cardConsumptionFundReq);

    void whether(Long id, boolean whether) throws ResultCodeException;

    ResultData<BasePageResp<CardConsumptionFundItemVo>> applySpu(CardConsumptionFundItemReq req);

    void examineSpu(CardConsumptionFundItemReq req) throws ResultCodeException;

    void apply(List<CardConsumptionFundItem> cardConsumptionFundItems, List<String> strings) throws ResultCodeException;

    void deleted(Long id) throws ResultCodeException;

    CardConsumptionFund findOne();

    void insertCardConsumptionUser(CardConsumptionUser cardConsumptionUser);

    CardConsumptionUser getCardConsumptionUser(Long id);

    ResultData<BasePageResp<CardConsumptionFundItemVo>> getBindSpu(CardConsumptionFundItemReq req);

    ResultData<CardConsumptionUserVo> get(User user);

    ResultData<BasePageResp<StoreDetailVO>> getCardStore(TenantPageReq req);

    ResultData<BasePageResp<CardConsumptionFundItemVo>> getStoreSpu(CardConsumptionFundItemReq req);
}
